Jump To:
Technical Q&As
The printing system in Mac OS X is based on the Common UNIX Printing System (CUPS). Mac OS X printing supports a wide variety of PostScript and raster printers, and offers advanced features such as network job spooling via the Internet Printing Protocol (IPP), and PDF and Quartz imaging. The printing system also allows printer drivers and applications to present modular and extensible user interfaces, so that developers can take advantage of and extend Apple's interface rather than write extra code to override it.

Printing Resources
A guided introduction and learning path for developers new to Mac OS X printing.   Essential information for developers using Apple's powerful printing environment.  
Document Descriptions
On Off
Display

Sorted by
Title
Sort by
Topic
Sort by
Date
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
Device Drivers 1999-10-11
ATSUI and MLTE Printing (HTML) ()
QD64: Describes a way to get MLTE and ATSUI text to print through the QuickDraw bottlenecks.
Carbon 2000-11-08
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Carbon, Cocoa 2001-07-02
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Carbon, Cocoa 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Carbon, Cocoa 2001-10-02
Combinations of cupsColorSpace, cupsColorOrder and cupsBitsPerColor values supported by Mac OS X (HTML)
QA1368: Table of supported combinations of cupsColorSpace, cupsColorOrder and cupsBitsPerColor values supported by Mac OS X.
CUPS 2004-08-27
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Carbon, Cocoa 2001-07-02
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
Device Drivers, Networking 1999-03-29
Finding the bit depth of a Carbon Printing Manager graphics context (HTML) ()
QD63: Explains how to find the bit depth of a Carbon Printing Manager graphics context.
Carbon 2000-11-08
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
Device Drivers 2004-04-26
Getting a Packet Trace (HTML) ()
QA1176: Lists tools available for looking at the network packets on the wire.
Networking 2004-07-13
How do I use PMSessionGetGraphicsContext to get a CGContextRef? (HTML) ()
QA1216: Describes how to use PMSessionSetDocumentFormatGeneration and PMSessionGetGraphicsContext to get a CGContextRef for printing.
Carbon 2003-02-25
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Carbon, Cocoa 2001-07-02
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
Device Drivers 1999-11-15
Make sure your PPD Plugin calls ppdCloseCompiledPPDFromTicket (HTML)
QA1275: Avoid a potential PPD Plugin bug that can cause problems with the print dialog and applications.
Carbon 2004-02-19
New PPD keywords available in Mac OS X version 10.3 (HTML)
QA1352: Describes the new PPD keywords available for CUPS filters in Mac OS X 10.3.
CUPS, Device Drivers 2004-05-26
Printer Queue vs. Printer Name (HTML)
QA1407: Explains the difference between a printer queue and a printer name.
Carbon 2005-01-27
Quartz 2D Interpolation (HTML) ()
QA1186: Explains how to control Quartz 2D's image interpolation.
Carbon, Cocoa 2002-10-29
Quartz 2D Thread Safety (HTML) ()
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Carbon, Cocoa 2003-02-25
Retain Counts of io_object_t Objects in IOKit.framework (HTML) ()
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Device Drivers 2002-09-04
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Carbon, Cocoa 2001-10-02
SCSIAction and IOSCSIUserClient on Mac OS X 10.2 (HTML) ()
QA1201: Describes migrating to a new API for SCSI Parallel devices starting with Mac OS X 10.2.
Device Drivers 2002-09-13
Tioga PostScript Printing Plugins in Mac OS X 10.2 (HTML) ()
QA1085: Why Tioga printing plugins for PostScript printing aren't called on Mac OS X 10.2 and later.
CUPS, Device Drivers 2003-07-14
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Carbon, Cocoa 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Carbon, Cocoa 2001-07-02
Why does logging keep my Printer Module from working? (HTML) ()
Deprecated - QA1182: Describes some problems with standard printf logging in a Printer Module on Jaguar.
Device Drivers 2002-11-06
Why don't all of my PDE localizations show up in all applications? (HTML) ()
QA1185: Explains why some PDE localizations might not appear in all applications.
Device Drivers 2002-10-16